package com.ccjq.shosestore.order.dao;

import com.ccjq.shosestore.order.po.CarAndProductPo;
import com.ccjq.shosestore.order.po.Order;
import com.ccjq.shosestore.order.po.OrderPo;

import java.util.List;

/**
 * 订单相关信息接口
 */
public interface OrderDao {
    /**
     *添加订单信息表
     * @param orderPo
     * @return0-失败，1-成功；
     */
    int insertXinXi(OrderPo orderPo);
    /**
     *添加订单相关信息表
     * @param order
     * @return0-失败，1-成功；
     */
    int insertGuanLian(Order order);

    /**
     * 根据id删除购物车数据
     * @param user_id
     * @return
     */
    int deleteCar(String user_id);
    /**
     * 根据商品id修改库存表中的库存量
     * @param product_id
     * @return
     */
    int updateStock(int quantity,String product_id);

    /**
     * 分页查询订单信息表
     * @return
     */
    List<OrderPo> selectAllOrder();
    /**
     * 根据订单id查询订单信息表
     * @param order_id-订单id
     * @return 返回集合对象
     */
    OrderPo selectOrder(String order_id);
    /**
     * 根据用户id查询购物车和商品信息
     * @param user_id
     * @return
     */
    List<CarAndProductPo> productCarList(String user_id);

    /**
     * 根据购物车id和用户id查询商品数量
     * @param shopping_cart_id
     * @param user_id
     * @return
     */
    List<CarAndProductPo> selectCarQuantity(String shopping_cart_id,String user_id);

    /**
     * 根据商品id插叙商品库存量
     * @param product_id
     * @return
     */
    int selectStockQuantity(String product_id);

    /**
     * 查询购买时价格
     * @param product_id
     * @return
     */
    double selectPrice(String product_id);
    /**
     * 分页查询全部
     * @param pageSize
     * @param startRow
     * @return
     */
    List<OrderPo> selectFengYeAll(String user_id,int startRow,int pageSize);
    /**
     * pageCount查询总页数
     * 查询商品列表信息即分页
     * @return
     */
    int pageCount(String user_id);

    /**
     *根据订单id查询商品id和价格及特性描述
     * @param order_id
     * @return
     */
    List<CarAndProductPo> selectorder(String order_id);
}
